如何使用OSQP |
您所在的位置:网站首页 › eigen 安装 › 如何使用OSQP |
更多的关于Eigen的学习参考 更多的关于OSQP的学习参考 我们在github上找到了使用eigen库封装起来的OSQP库,比原来的OSQP写代码时更好用一些。 我们对照mathworks对quadprog的例子解释对库的使用 一个标准的QP问题可以以如下的标准形式进行描述:
可以看到,这里的等式约束没有就可以不写,solver会,默认不去管它。 OSQP-Eigen库的c++调用是: // 具有线性约束的二次规划 hessian.resize(2, 2); hessian.insert(0, 0) = 1; hessian.insert(1, 0) = -1; hessian.insert(0, 1) = -1; hessian.insert(1, 1) = 2; std::cout for (int j = 0; j for (int j = 0; j linearMatrix.insert(0, i) = pow(Te, i); } //the second row for (int i = 1; i linearMatrix.insert(2, i) = 0; } linearMatrix.insert(2, 0) = 0; linearMatrix.insert(2, 1) = 1; // the fourth row linearMatrix.insert(3, 0) = 0; linearMatrix.insert(3, 1) = 1; linearMatrix.insert(3, 2) = 2 * Te; linearMatrix.insert(3, 3) = 3 * Te * Te; linearMatrix.insert(3, 4) = 4 * Te * Te * Te; linearMatrix.insert(3, 5) = 5 * Te * Te * Te * Te; // the fifth row linearMatrix.insert(4, 0) = 0; linearMatrix.insert(4, 1) = 0; linearMatrix.insert(4, 2) = 2; linearMatrix.insert(4, 3) = 0; linearMatrix.insert(4, 4) = 0; linearMatrix.insert(4, 5) = 0; // the sixth row linearMatrix.insert(5, 0) = 0; linearMatrix.insert(5, 1) = 0; linearMatrix.insert(5, 2) = 2; linearMatrix.insert(5, 3) = 6 * Te; linearMatrix.insert(5, 4) = 12 * Te * Te; linearMatrix.insert(5, 5) = 20 * Te * Te * Te; std::cout |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |